1
灵活方法定义的艺术
AI035Lesson 4
00:00

Ruby 将方法定义从僵化的签名提升为 动态接口。通过掌握 Splat 运算符和基于表达式的逻辑,我们可以创建出能够优雅适应不同数据密度的方法,而无需复杂的重载。

1. 智能默认值与 Splat 运算符

Ruby 允许在参数签名中进行初始化,即使数据量极少也能确保功能正常。 Splat 运算符 (*) 起到了桥梁作用:在参数中,它将额外的参数捕获为一个数组;在调用时,它会将数组“展开”成单独的参数位置。

捕获(参数)def f(a, *rest)f(1, 2, 3) →rest = [2, 3]展开(调用)arr = [1, 2, 3]meth(*arr) →meth(1, 2, 3)

2. 基于表达式的返回

Ruby 方法会自动返回 最后一个执行的表达式。然而, return 关键字被策略性地使用,用于提前退出或以数组形式返回多个值,以便进行 并行赋值

num, sq = meth_three
# Ruby 将 (num, sq) 打包为数组 [32, 1024]
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>